//
//  AppDelegate.swift
//  weibo1
//
//  Created by 李进 on 15/10/14.
//  Copyright © 2015年 李进. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
        setupAppearance()
       
        window = UIWindow()
        
        window?.backgroundColor = UIColor.whiteColor()
        
        window?.rootViewController =  defaultRootVc//FristCollectionViewController()
        
        window?.makeKeyAndVisible()
        
        //接收通知
       NSNotificationCenter.defaultCenter().addObserverForName(
            NotificationCenterName,  //通知名称
            object: nil,             //发送通知的对象，如果 object 为空就说明，接收通知的可以是任意对象
            queue: nil)              //执行在那个线程，nil 就是在主线成
            { [weak self](notification) -> Void in
                
                let vc = notification.object == nil ? WelcomeViewController() : MainTabBarViewController()
                
                // 切换控制器
                self?.window?.rootViewController = vc
        }
        
        
        return true
    }
    
    /// 设置全局外观 - 在很多应用程序中，都会在 AppDelegate 中设置所有需要控件的全局外观
    private func setupAppearance() {
        // 修改导航栏的全局外观 － 要在控件创建之前设置，一经设置全局有效
        UINavigationBar.appearance().tintColor = UIColor.orangeColor()
        UITabBar.appearance().tintColor = UIColor.orangeColor()
    }
    
    //MARK: 当应用在后台的时候就进行数据库中的数据清理
    func applicationDidEnterBackground(application: UIApplication) {
        UserDAL.clearDataCache()
    }
    
   deinit{
       NSNotificationCenter.defaultCenter().removeObserver(self, name: NotificationCenterName, object: nil)
    }
    
}

// MARK: - 判断是否为最新版本
extension AppDelegate{
    
    //定义一个属性来装上衣版本的版本号
    //private var lastVersion:CGFloat?
    
    private var defaultRootVc: UIViewController{
        
        //首先必须先判断用户是否登录状态是登录状态才会用之歌判断
        //userAccViewModel.shareAccViewModel.isLogin
        
        if userAccViewModel.shareAccViewModel.isLogin {
            
            return isCurrerVersion == true ? FristCollectionViewController() : WelcomeViewController()
        }
        
         return isCurrerVersion == true ? FristCollectionViewController() : MainTabBarViewController()
        //return MainTabBarViewController()
        
    }
   
    /// 判断是否为最新版本的计算行属性
    private var isCurrerVersion:Bool {
        
        //获取当前版本号
        let version = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String
        //讲版本号字符串转化成数值类型
        let currerVersion = Double(version)!
        //print(version)
        
        //先从编好设置当中获取上次版本号，先定义一个key
        let defaultKey = "keyVersionlast"
        //h获取上一次版本号
        let lastversion = NSUserDefaults.standardUserDefaults().doubleForKey(defaultKey)
        
        //讲当前版本号存储到偏好设置当中
        NSUserDefaults.standardUserDefaults().setDouble(currerVersion, forKey: defaultKey)
        
        //讲当前版本号与上一版本号进行比较
        return currerVersion > lastversion

    }
    
}

